針對整個系列,做個分類與整理。
補充一些筆者覺得不錯的參考資源,供讀者可以更深入的了解相關概念與技術。
這次鐵人賽,希望可以用30篇文章,來讓讀者了解TDD完整流程中,每一個環節的重要性,以及它們彼此之間如何環環相扣,發揮綜效,以降低每個環節與每個角色之間轉換的effort。
這一系列30篇文章,筆者有精心規劃過順序,所以強烈建議讀者,可以的話請按照順序來閱讀。文中也有許多交互參照的reference,按照順序閱讀與練習,會更能將自己沉浸在TDD過程的節奏中,而且每一篇文章中,所需要花費的練習時間相當簡短,每一個概念精簡而重要,就跟物件設計的封裝原則一樣,「最少但是又缺一不可」。
一步一步去了解文中所提倡的精神,一步一步跟著文中範例去練習,當碰到了瓶頸,我想恭喜您,就跟TDD中碰到紅燈一樣讓人開心,跨過去了,你就得到它了!按照筆者安排的難易度,每一篇文章只要有寫過程式碼的朋友,應該就能跟的上這樣的步調才是。
接下來是30篇文章的分類,希望對大家在閱讀或survey整個TDD,可以有所幫助。
@TDD 概念大綱
@測試相關
@重構九式
@ATDD
@BDD & TDD
@整套的TDD流程
@TDD實戰演練
@Reference
書籍:
The Art of Unit Testing: With Examples in .Net
簡體中文:.NET單元測試的藝術
Test Driven: TDD and Acceptance TDD for Java Developers
簡體中文:测试驱动开发的艺术
Refactoring: Improving the Design of Existing Code
繁體中文:重構:改善既有程式的設計 (二版)
簡體中文:重构:改善既有代码的设计
Refactoring to Patterns
繁體中文:重構-向範式前進
簡體中文:重構與模式
Agile Principles, Patterns, and Practices in C#
簡體中文:敏捷软件开发:原则、模式与实践
Growing Object-Oriented Software, Guided by Tests
簡體中文:測試驅動的面向對象軟體開發
Emergent Design: The Evolutionary Nature of Professional Software Development
簡體中文:浮现式设计:专业软件开发的演进本质
Brownfield Application Development in .Net
繁體中文:軟體構築美學:當專案團隊遇上失控程式,最真實的解決方案
Succeeding with Agile: Software Development Using Scrum
簡體中文:Scrum敏捷软件开发
Scrum and XP from the Trenches (Enterprise Software Development)
簡體中文:硝烟中的Scrum和XP:我们如何实施Scrum
筆者註:大家可能會有個疑問,怎麼書裡面沒列到TDD的經典本:Test Driven Development: By Example(by Kent Beck),嗯,原因很簡單,我沒有看完,只有看了最前面的幾章...當時拿來當切入TDD的第一本入門書,讓我有點卡彈,可能是我英文不夠好、可能沒那麼剛好敲到我欠缺的部份,但可以確定的是,Kent Beck在TDD的書,肯定值得閱讀 :)
@結論
最後想提醒一下讀朋友們,user story/ATDD/BDD/TDD/Refactoring,這些概念都不會因為語言、平台、工具而有所不同。
在各種不同的環境下,只要掌握這些概念,有過幾次完整套用的實務經驗,要體會其中各個環節自然不會是太大的問題。當然,如果是要導入到團隊中的話,那麼眉角會更多,先讓自己去了解、練習,並試著應用到實務上,您鐵定會碰到不少實務上的問題,這些問題,才是真正的「價值」。
把這些東西內化之後,自然您就不會感受到什麼成本、時程的問題,因為在開發時,這一切就跟呼吸一般自然。掌握你的節奏、團隊的節奏,這樣子開發過程,會是一個很美妙的世界的。
好多書~好多寶藏阿~~~~
比較不好意思的是,我大部分都是看簡體書,除非繁體有出。
英文還沒法子看到這麼順...加上太貴了
hatelove提到:
比較不好意思的是,我大部分都是看簡體書,除非繁體有出。
所以有機會的話,會幫忙翻譯點好書,或是跟前輩一起撰寫書籍 ^^
剛剛才發現,之前沒有把實戰演練的範例sample code放上來。
剛剛補上範例的下載位置了,請各位讀者輕鬆享用 :)